export const throttleContent = {
  problem: `实现一个节流函数 throttle，要求：

1. 函数接收两个参数：要节流的函数 fn 和时间间隔 interval
2. 在 interval 时间内，函数最多执行一次
3. 如果在 interval 时间内调用，则忽略这次调用
4. 返回一个节流后的函数

示例：
const throttledFn = throttle(() => console.log('执行'), 1000);
throttledFn(); // 立即执行
throttledFn(); // 被忽略
throttledFn(); // 被忽略
// 1秒后可以再次执行

请实现这个节流函数。`,
  
  solution: `function throttle(fn, interval) {
  let lastTime = 0;
  
  return function (...args) {
    const now = Date.now();
    
    if (now - lastTime >= interval) {
      fn.apply(this, args);
      lastTime = now;
    }
  };
}

// 测试代码
const throttledFn = throttle(() => console.log('执行'), 1000);
throttledFn(); // 立即执行
throttledFn(); // 被忽略
throttledFn(); // 被忽略`,
  
  explanation: `节流函数的核心思想是限制执行频率，在指定时间间隔内最多执行一次。

实现步骤：
1. 使用闭包保存上次执行时间
2. 每次调用时检查距离上次执行的时间
3. 如果时间间隔足够，则执行函数并更新执行时间
4. 否则忽略这次调用

关键点：
- 使用 Date.now() 获取当前时间
- 比较当前时间与上次执行时间的差值
- 使用 apply 传递参数和 this 上下文
- 闭包保存上次执行时间`,
  
  practice: {
    title: '节流函数练习',
    description: '练习实现节流函数，测试不同的使用场景'
  }
}
